博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
完成登录功能,用session记住用户名
阅读量:4611 次
发布时间:2019-06-09

本文共 3839 字,大约阅读时间需要 12 分钟。

登录功能完成:

  1. js:设置return
  2. html:设置
    1. form
    2. input
    3. οnclick="return fnLogin()"
  3. py:
    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。

session:

  1. 从`flask`中导入`session`
  2. 设置`SECRET_KEY`
  3. 操作字典一样操作`session`:增加用户名`session['username']=`username
    from flask import Flask,render_template,request,redirect,url_for,sessionfrom flask_sqlalchemy import SQLAlchemyimport configapp = Flask(__name__)app.config.from_object(config)db=SQLAlchemy(app)class User(db.Model):    __table__name = 'user'    id = db.Column(db.Integer,primary_key=True,autoincrement=True)    username = db.Column(db.String(20),nullable=False)    password = db.Column(db.String(20),nullable=False)    nickname = db.Column(db.String(50))db.create_all()@app.route('/')def index():    return render_template('index.html')@app.route('/regist/',methods=['GET','POST'])def regist():    if request.method=='GET':        return render_template('regist.html')    else:        username=request.form.get('username')        password=request.form.get('password')        nickname=request.form.get('nickname')        user=User.query.filter(User.username==username).first()        if user:            return u'username existed'        else:            user=User (username=username,password=password,nickname=nickname)            db.session.add(user)            db.session.commit()            return redirect(url_for('login'))@app.route('/login/',methods=['GET','POST'])def login():    if request.method=='GET':        return render_template('login.html')    else:        username=request.form.get('username')        password=request.form.get('password')        user = User.query.filter(User.username == username).first()        if user:            if user.password==password:                session['user']=username                return redirect(url_for('index'))            else:                return u'password error'        else:            return u'username is not existed'if __name__ == '__main__':    app.run(debug=True)
    import osSECRET_KEY = os.urandom(24)SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@localhost:3306/mis_db?charset=utf8'SQLALCHEMY_TRACK_MODIFICATIONS = False
    {% extends 'base.html' %}{% block title %}登录{% endblock %}{% block head %}    
    {% endblock %}{% block main %}
    Username:
    Password:
    {% endblock %}
    function myLogin(){            var uName=document.getElementById("name");            var uError=document.getElementById("error_box");            var upass = document.getElementById("password");            var isError=true;            uError.innerHTML = "
    " //uname if(uName.value.length>12 || uName.value.length<6){ uError.innerHTML="Username 6-12 bits"; isError=false; return isError; }else if((uName.value.charCodeAt(0)>=48)&& uName.value.charCodeAt(0)<=57){ uError.innerHTML="The first letter cannot be numeric"; isError=false; return isError; }else for(var i=0; i
    57)&&(uName.value.charCodeAt(i)<97 || uName.value.charCodeAt(i)>122 )){ uError.innerHTML = "only letter or number."; isNotError=false; return isError; } } if(upass.value.length>12 || upass.value.length<6){ uError.innerHTML="password 6-12 bits"; isError=false; return isError; } return isError; }

     

转载于:https://www.cnblogs.com/marsk/p/7879736.html

你可能感兴趣的文章
Django----------路由控制
查看>>
将数字转化为字符串的快捷方式
查看>>
java23种设计模式
查看>>
冲刺周期一--站立会议04
查看>>
支持IE6以上阴影效果纯CSS
查看>>
优化算法与特征缩放
查看>>
NOIP模板复习(4)区间操作之莫队算法,树状数组,线段树
查看>>
深入理解PHP中的引用和赋值
查看>>
Shell父进程获取子进程的变量值
查看>>
BOM——检测浏览器
查看>>
Hanoi塔问题——递归
查看>>
高斯 到 正态分布 的前世今生
查看>>
for 循环遍历字典中的键值两种方法
查看>>
计算客 商品推荐走马灯(简单)(求区间全部连续的回文串价值)
查看>>
IOS &#39;NSInternalInconsistencyException&#39;
查看>>
vim安装ctags,taglist和Pydiction
查看>>
机器学习系列之EM算法
查看>>
Time.timeScale 对 协程WaitForSeconds的影响
查看>>
Java并发编程-CAS
查看>>
SQL Server 2008的备份和日志收缩
查看>>